﻿class Cliente ():

     def __init__ (self, nome, cpf, pontos, localdoparque):

        self._nome = nome
        self._cpf = cpf
        self._pontos = pontos
        self._localdoparque = localdoparque

     def getNome (self):
          return self._nome

     def setNome (self, nome):
          self._nome = nome
         
     def getCpf (self): 
          return self._cpf

     def setCpf (self,cpf):
          self._cpf = cpf

     def getPontos (self):
          return self._pontos

     def setPontos (self, pontos):
          self._pontos = ponos

     def getLocaldoparque (self):
          return self._localdoparque

     def setLocaldoparque (self,localdopaeque):
          self._localdoparque = localdoparque



class CadastroClientes ():

     def __init__ (self):
          arquivo = open ('Clientes.txt', 'r')
          self._clientes = arquivo.readlines ()   
          arquivo.close ()

     def getClientes (self):          # deve ter este outro pra usar la em baixo
          return self._clientes


     def adicionarCliente (self, cpf, nome, pontos, localdoparque):

          novocliente = Cliente (cpf, nome, pontos, localdoparque)
          for cliente in self._clientes:
#fazendo a leitura dos primeiros 11 caracteres que correspondem ao cpf do cliente 
               cpf_cliente = cliente.read(11)
               if cpf_cliente == cpf:
                    print ('\nO cadastro já existe!\n')
                    break
          else:
#O cpf deve ficar em primeiro por ser a informação mais importante do cliente, e por ser a chave da busca.  
               self._clientes.append (str (novocliente.getCpf ()) + '\t' + str (novocliente.getNome ()) + '\t' + str (novocliente.getPontos ()) + '\t' + str (novocliente.getLocaldoparque ()) + '\n')
               self.imprimirEmArquivo (self._clientes)
               print ('\nCadastro realizado com sucesso!\n')

     def imprimirEmArquivo (self,lista):
          arquivo = open ('Clientes.txt', 'w')
          arquivo.writelines (lista)
          arquivo.close () 

# ALTERA cadastro DO CLIENTE DE ACORDO COM O CPF DIGITADO.
#recebe o objeto alterado e a linha da posição que vai ser apagada e substituida   
     def alterarCadastro (self,cliente,linha): 
#apagar linha                   
        self._clientes.append (str (novocliente.getCpf ()) + '\t' + str (novocliente.getNome ()) + '\t' + str (novocliente.getPontos ()) + '\t' + str (novocliente.getLocaldoparque ()) + '\n')
               self.imprimirEmArquivo (self._clientes)
               print ('\nAlteração realizada com sucesso!\n') 
               
          
# REMOVE CADASTRO DO CLIENTE DE ACORDO COM O CPF DIGITADO.          
     def excluiCadastro (self):
          
          pass                                   # incompleto


